//引入express
const express=require('express');
//引入连接池模块（../pool.js）
const pool=require('../pool.js');
console.log(pool);

//创建路由器对象
const r=express.Router();
//往路由器中添加路由



//1.注册用户（post /reg）
//  接口地址：http://127.0.0.1:8080/v1/users/reg
//  请求方式：post
	var p=/^1[3-9]\d{9}$/;//正则表达式
r.post('/reg',(req,res,next)=>{
	//1.1获取post传递（body）的参数
	var obj=req.body;
		console.log(obj);
	//1.2判断各项是否为空
	if (!obj.uname)//===''
	{
		res.send({code:401,msg:'用户名不能为空'});
		return;
	}
	if (!obj.upwd)//===''
	{
		res.send({code:402,msg:'密码不能为空'});
		return;
	}
	if (!obj.email)//===''
	{
		res.send({code:403,msg:'邮箱不能为空'});
		return;
	}
	if (!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(obj.email))
	{
		res.send({code:404,msg:'邮箱格式不正确'});
		return;
	}
	if (!obj.phone)//===''
	{
		res.send({code:405,msg:'手机号不能为空'});
		return;
	}

	if (!/^1[3-9]\d{9}$/.test(obj.phone))
	{
		res.send({code:406,msg:'手机号格式不正确'});
		return;
	}

	//1.3执行SQL命令
pool.query('insert into xz_user set?',[obj],(err,result)=>{
if (err)
{
	//交给下一个中间件
	next(err);
	return;
}
console.log(result);
res.send({code:200,msg:'注册成功'});
});
	
	
});



//---------------注册接口结束--------------------





//2.登录接口（post /login）
//select * from xz_user where uname=? and upwd=?
//接口地址：http://127.0.0.1:8080/v1/users/login
//请求方法：post
r.post('/login',(req,res,next)=>{
  //2.1获取路由传参的数据
  var obj=req.body;
  console.log(obj);
  //2.2验证数据各项是否为空
  if (!obj.uname)//===''
	{
		res.send({code:401,msg:'用户名不能为空'});
		return;
	}
	if (!obj.upwd)//===''
	{
		res.send({code:402,msg:'密码不能为空'});
		return;
	}
 //2.3执行SQL命令
   pool.query('select * from xz_user where uname=? and upwd=?',[obj.uname,obj.upwd],(err,result)=>{
  if (err)
{
	//交给下一个中间件
	next(err);
	return;
}
console.log(result);
//查询的结果是数组，如果是空数组说明登录失败，否则说明登录成功
if (result.length===0)
{
	res.send({code:201,msg:'登录失败'});
}else{
    res.send({code:200,msg:'登录成功'});
}
  });
});


//-------------------登录接口结束-------------------------










//3.删除用户（delete  /编号）
//delete from xz_user where uid=?
//接口地址：http://127.0.0.1:8080/v1/users/2     //路由传参
//请求方法：delete

r.delete('/:uid',(req,res,next)=>{
//3.1获取路由传参的值
var obj=req.params;
console.log(obj);
//3.2执行SQL命令
pool.query('delete from xz_user where uid=?',[obj.uid],(err,result)=>{
	if (err)
	{
		next(err);
		return;
	}
console.log(result);
	if ( result.affectedRows===0)
	{
	res.send({code:201,msg:'删除失败'});
	}else{
	  res.send({code:200,msg:'删除成功'});
	}

});
});



//-------------------------删除接口结束---------------------

//4.用户信息修改（put ）
//update xz_user set? where uid=?
//接口地址：http://127.0.0.1:8080/v1/users   //路由传参
//请求方法：put

r.put('/',(req,res,next)=>{
	//4.1获取post(body)
var obj=req.body;
console.log(obj);
//4.2验证数据各项是否为空
var i=400;//声明初始值状态码
for (var k in obj)
{
	i++;//状态码+1
	//console.log(k,obj[k]);   //k代表属性名，obj[k]代表属性值
	if (!obj[k])
	{
		res.send({code:i,msg:k+'不能为空'});
		return;
	}
}

//4.3执行SQL命令

pool.query('update xz_user set? where uid=?',[obj,obj.uid],(err,result)=>{

if (err)
{
	next(err);
	return;
}
console.log(result);
 if (result.affectedRows===0)
 {
    res.send({code:201,msg:'修改失败'});
 }else{
    res.send({code:200,msg:'修改成功'});
 }

});

});



//------------------------修改接口结束--------------------------
//导出路由器对象
module.exports=r;

